home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
3D Images
/
3D Images.iso
/
programs
/
amiga
/
photocdadpro
/
photocd
next >
Wrap
Text File
|
1995-01-12
|
8KB
|
320 lines
/*
** PhotoCD
**
** $VER: ADPro PhotoCD Loader 2.0.5 (14.6.94)
** Loader for Photo-CD-Pictures in ADPro together with AsimPhoto.
** Copyright © 1994 Erik Simonson
** All Rights Reserved
*/
OPTIONS RESULTS
SIGNAL ON BREAK_C
SIGNAL ON BREAK_D
SIGNAL ON HALT
SIGNAL ON SYNTAX
ADPro = '"ADPro PhotoCD-loader"'
NL = '0a'x
NeedPrefsversion = 1.1
PrefsFile = "ENV:ADPro/PhotoCD.prefs"
IF ~SHOW('L',"rexxsupport.library") THEN
IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN
CALL Quit("Couldn't open 'rexxsupport.library', you must\ninstall it before using this program.")
Complete = 0
DO WHILE Complete ~= 2
IF OPEN(Prefs,PrefsFile,"R") THEN DO
Complete = 1
OpenPrefs = 1
DO i=1 TO 3
READLN(Prefs)
END
Prefsversion=WORD(READLN(Prefs),3)
IF Prefsversion < NeedPrefsversion THEN
CLOSE(Prefs)
ELSE DO
Asim=READLN(Prefs)
CALL Signs(RIGHT(Asim,LENGTH(Asim)-16),'"')
AsimCDFSPath = String
CALL CheckPath("File",AsimCDFSPath)
IF Correct = 0 THEN
AsimCDFSPath = "ASIMCDFSPATH"
Language=WORD(READLN(Prefs),3)
Work=READLN(Prefs)
CALL Signs(RIGHT(Work,LENGTH(Work)-16),'"')
WorkDir = String
CALL CheckPath("Dir",WorkDir)
IF Correct = 0 THEN
WorkDir = "WORKDIR"
CLOSE(Prefs)
END
END
ELSE
PrefsFile = "ENV:ADPro/PhotoCD.prefs"
Complete = Complete + 1
END
ADDRESS "ADPro"
DISPLAYMESSAGE ADPro
/* Asking which language to use */
Resultat = 1
IF Language = "LANGUAGE" THEN DO
DO WHILE Resultat ~= 0
LISTVIEW '"Language ?"' 2 NOSELECT SORT ITEMS "English Svenska"
Resultat = RC
IF Resultat = 0 THEN Language = WORD(ADPRO_RESULT,1)
ELSE DO
OKAYN '"Language selection"' '"No language selected, you must select\none before using this program."' "Select|Cancel"
IF RC = 0 THEN CALL Quit
END
END
END
/* Strings, translate them if you want to, but notice
** that you have to doublequote strings with spaces.
*/
IF Language = '"English"' THEN DO
ProgReq = '"Select conversion program..."'
ProgMess = '"No conversion program selected, you must\nselect one before using this program."'
ProgChoi = "Select|Cancel"
WorkReq = '"Work in directory..."'
WorkMess = '"No workdirectory selected, you must\nselect one before using this program."'
PrefMess = '"In which way do you want to save the preferences?"'
Cancel = "Cancel"
Save = "Save"
Use = "Use"
PrefsMess = '"The preferences could only be saved temporarily\nin Ram:, and because of that will not be found\nthe next time after a cold reboot."'
FileReq = '"Select PhotoCD Image File to Load"'
FileMess = '"No picture selected, do you want to quit?"'
FileChoi = "Select|Yes"
ResMess = '"In which resolution do you want\nto have the converted picture?"'
ConvMess = '"Converting picture..."'
END
/* Swedish strings */
ELSE IF Language = '"Svenska"' THEN DO
ProgReq = '"Välj konverteringsprogram..."'
ProgMess = '"Inget konverteringsprogram valt, du måste\nvälja ett för att använda detta program."'
ProgChoi = "Välj|Avbryt"
WorkReq = '"Arbeta i katalog..."'
WorkMess = '"Ingen arbetskatalog vald, du måste välja\nett för att använda detta program."'
PrefMess = '"Hur vill du spara inställningarna?"'
Cancel = "Avbryt"
Save = "Spara"
Use = "Använd"
PrefsMess = '"Inställningarna kunde bara sparas temporärt\ni Ram:, och kommer på grund av det att vara\nborta nästa gång datorn slås på."'
FileReq = '"Öppna Photo-CD-bild..."'
FileMess = '"Ingen bild vald, vill du avsluta?"'
FileChoi = "Välj|Ja"
ResMess = '"Vilken upplösning vill du ha\npå den konverterade bilden?"'
ConvMess = '"Konverterar bilden..."'
END
/* End strings */
/* Asking for conversionprogram */
IF AsimCDFSPath = "ASIMCDFSPATH" THEN DO
CALL FilePath("File",ProgReq,"AsimCDFS:","AsimPhoto",ProgMess,ProgChoi)
AsimCDFSPath = '"'String'"'
SavePrefs = 1
END
/* Asking for workdirectory */
IF WorkDir = "WORKDIR" THEN DO
CALL FilePath("Dir",WorkReq,"Ram:T",,WorkMess,ProgChoi)
WorkDir = '"'String'"'
SavePrefs = 1
END
IF RIGHT(WorkDir,2) = ':"' THEN
WorkFile = INSERT(LEFT(WorkDir,(LENGTH(WorkDir)-1)),"ADPPHCDLOAD")'"'
ELSE
WorkFile = INSERT(LEFT(WorkDir,(LENGTH(WorkDir)-1)),"/ADPPHCDLOAD")'"'
/* Save prefs */
IF SavePrefs = 1 THEN DO
OKAYN ADPro PrefMess Save'|'Use'|'Cancel
SELECT
WHEN RC = 1 THEN Save = 2
WHEN RC = 2 THEN Save = 1
WHEN RC = 0 THEN Save = 0
END
IF Save ~= 0 THEN DO
Resultat = 0
DO WHILE Resultat < Save
IF OPEN(Prefs,PrefsFile,"W") THEN DO
WriteLn(Prefs,"These are the current preferences for ADPro PhotoCD Loader.")
WriteLn(Prefs,"1994 © Erik Simonson")
WriteLn(Prefs,"")
WriteLn(Prefs,"Prefsversion = "||NeedPrefsversion)
WriteLn(Prefs,"AsimCDFS-Path = "||AsimCDFSPath)
WriteLn(Prefs,"Language = "||Language)
WriteLn(Prefs,"Work-Dir = "||WorkDir)
CLOSE(Prefs)
END
ELSE
OKAY1 PrefsMess
Resultat = Resultat + 1
PrefsFile = "ENVARC:ADPro/PhotoCD.prefs"
END
IF Resultat = 1 & Save = 2 THEN
OKAY1 PrefsMess
END
END
/* Asking for picture */
CALL FilePath("File",FileReq,"CD0:PHOTO_CD/IMAGES",,FileMess,FileChoi)
AsimCDFS = AsimCDFSPath "From" String
/* Asking in which resolution the should be in */
OKAYN ADPro ResMess INSERT("768x512|384x256|192x128|",Cancel)
SELECT
WHEN RC = 1 THEN DestFil = ' To '||WorkFile||' Resolution base'
WHEN RC = 2 THEN DestFil = ' To '||WorkFile||' Resolution base4'
WHEN RC = 3 THEN DestFil = ' To '||WorkFile||' Resolution base16'
WHEN RC = 0 THEN CALL Quit
END
DISPLAYMESSAGE ConvMess
/* Converting image */
ADDRESS COMMAND
INSERT(AsimCDFS,Destfil)
ADDRESS "ADPro"
DISPLAYMESSAGE ADPro
/* Open picture */
ADDRESS "ADPro"
LOADER "IFF" WorkFile
CALL Quit
CheckPath:
PARSE ARG Type,Path
Correct = 0
Leng = LENGTH(Path)
IF Type = "File" THEN
IF OPEN(Test,RIGHT(LEFT(Path,Leng-1),Leng-2),"R") THEN DO
CLOSE(Test)
Correct = 1
END
ELSE IF Type = "Dir" & RIGHT(Path,1) = ':' THEN
IF SHOWLIST('V',UPPER(LEFT(Path,Leng-1))) THEN Correct = 1
IF Correct = 0 THEN DO
Number = 1
String = ""
Resultat = 1
DO WHILE Resultat ~= 0
Sign = LEFT(RIGHT(Path,Number),1)
IF Sign ~= '/' & Sign ~= ':' THEN DO
Number = Number + 1
String = INSERT(Sign,String)
END
ELSE DO
SignEnd = RIGHT(String,1)
IF SignEnd = '"' THEN
String = LEFT(String,(LENGTH(String)-1))
Resultat = 0
Correct = 0
IF Sign = "/" THEN
Word = LEFT(Path,(Leng-Number))
ELSE DO
LeftWord = LEFT(Path,(Leng-Number+1))
LengLeftWord = LENGTH(LeftWord)
Word = RIGHT(LeftWord,LengLeftWord-1)
END
List = SHOWDIR(Word, 'd')
WordNumber = WORDS(List)
Number = 1
DO WHILE Correct = 0 & Number < WordNumber + 1
IF WORD(List,Number) ~= String THEN
Number = Number + 1
ELSE
Correct = 1
END
END
END
END
RETURN Correct
FilePath:
PARSE ARG Type,Title,DefaultDir,DefaultFile,Mess,Choices
ADDRESS "ADPro"
Resultat = 1
DO WHILE Resultat ~= 0
IF Type = "File" THEN DO
GETFILE Title DefaultDir DefaultFile
Resultat = RC
IF Resultat ~= 0 THEN DO
OKAYN ADPro Mess Choices
IF RC = 0 THEN CALL Quit
END
String = ADPRO_RESULT
END
ELSE
IF Type = "Dir" THEN DO
GETDIR Title DefaultDir
Resultat = RC
IF Resultat ~= 0 THEN DO
OKAYN ADPro Mess Choices
IF RC = 0 THEN CALL Quit
END
String = ADPRO_RESULT
END
END
RETURN String
Signs:
PARSE ARG String,Sign
StringLength = LENGTH(String)
IF LEFT(String,1) ~= Sign THEN
String = INSERT(Sign,String)
IF RIGHT(String,1) ~= Sign THEN
String = INSERT(String,Sign)
RETURN String
Quit:
PARSE ARG String
ADDRESS "ADPro"
IF String ~= "" THEN OKAY1 String
DISPLAYMESSAGE
ADDRESS COMMAND
"DELETE "||INSERT(LEFT(WorkFile,(LENGTH(WorkFile)-1)),'#?"')
EXIT 0